DBIsam VCL 4.29 b1 Full version

DBISAM is the standard for replacing the BDE in Delphi or C++Builder applications. It has has been deployed to thousands of locations around the world, and can be branded so that no one even knows that DBISAM is being used. It is licensed per-developer, and includes royalty-free distribution. License management isn't required at all, and the money that you used to pay to the database engine vendor is now your profit to keep.   Overview



DBISAM compiles directly into your application with no external libraries required. Runtime package support is also provided if so desired. It has a very small footprint and does not require any forms support in Delphi 6 and C++Builder 6 and higher, which helps keep the size of non-UI applications like services or web applications to a minimum.

DBISAM is available for Delphi 5, 6, and 7, C++Builder 5 and 6, Borland Developer Studio 2005 and 2006, CodeGear RAD Studio 2007 and 2009, and Embarcadero RAD Studio 2010 and higher for Windows. TDBISAMEngine,TDBISAMSessionTDBISAMDatabase,TDBISAMTable, and TDBISAMQuerycomponents are provided for all of these versions of Delphi, C++Builder, Borland Developer Studio, CodeGear RAD Studio, and Embarcadero RAD Studio.

The complete source code for all utilities provided, and source code for DBISAM itself is available for an additional charge.

Engine Features



DBISAM can be used as a single-user, multi-user, or client-server engine.

DBISAM does not pre-allocate large blocks of memory and uses, by default, a very small 128k of memory for each physical table in a session that contains BLOB fields and 96k for each physical table in a session that does not contain BLOB fields - 32k for records, 64k for indexes, and 32k for BLOBs (if present). These figures can be adjusted in the engine to allow for more memory consumption, if so desired. It uses a LRU cache management algorithm that also includes intelligent read-ahead buffering, optimized, serialized writes, and support for read-only devices like CD-ROMs with optimized buffering.

Automatic record locking and manual table locking is provided in DBISAM. Record locking can be configured to be pessmistic (default) or optimistic.

DBISAM offers transaction support in the form of buffered, serialized transactions that allow tables to survive unexpected client workstation power-downs with little, or in most cases, no data corruption. They are not, however, completely fail-safe.

DBISAM includes automatic change detection with a change detection policy that can be configured as "lazy" or "strict" on a per-session basis. This allows you to specify how current data should be when it is accessed by the application.

The in-memory tables in DBISAM are identical to disk-based tables and can be shared among multiple threads in the same application. You can create and use both local in-memory tables, which are stored in the client application's memory, or remote in-memory tables, which are stored in the database server's memory. In-memory tables can be used in SQL and can be mixed with disk-based tables.

DBISAM supports cached updates on a single table or query result set, with complete reconciliation control during application of the cached updates in order to handle possible errors. DBISAM also includes IProvider support that makes it ideal for use with the standard TClientDataSet component.

The DBISAM engine, represented by the TDBISAMEngine component, is highly customizable. Triggers, server-side procedures, scheduled events, custom SQL and filter functions, and custom engine signatures can be added and modified via the engine. However, server-side procedures and scheduled events are only available when the engine is acting as a database server. Triggers allow you to add code that is executed before or after any insert, update, or delete. Custom SQL and filter functions can be used to add complex functions to the SQL and filter grammar, thus enabling you to reduce the complexity of your SQL and filter expressions. Custom engine signatures can be used to "sign" all tables, streams, backups, and remote database server request and responses with a unique stamp so that only your application can access these resources.  
Table Format Features



The default maximum file size in DBISAM is 4 gigabytes . You can enable extended supportfor files up to 128 gigabytes. However, this is only currently available for Windows only. DBISAM uses up to 3 physical files per logical table. All free space in DBISAM tables is automatically recycled. In addition, any free space can be removed from a table immediately by optimizing the table. DBISAM uses fixed-length record sizes and variable index page and BLOB block sizes. 

SQL and Filter Support


DBISAM includes a subset of the SQL-92 standard, including a query optimizer, query plans, live and canned result sets, parameterized queries, query progress events, scripts, and extended SQL syntax for DBISAM-specific features.

Also, complete expression filter support is provided, including a filter optimizer, and filters use the same syntax as SQL expressions, even extended operators such as LIKE and BETWEEN and functions.  
Client-Server Access



DBISAM includes support for remote client-server access to a DBISAM database server. You can switch between local or multi-user usage and client-server usage with just a few property changes. Remote sessions include support for keep-alive pinging or the ability to maintain sessions that can survive connection interruptions, complete with dead session management for sessions that will never be reconnected due to a fatal client problem. Connection timeouts for remote sessions can be adjusted, and an event is fired whenever DBISAM is about to disconnect a remote session due to inactivity.

Remote sessions can be configured to use compression and strong encryption when accessing a DBISAM database server. Compression can be adjusted on-the-fly while a session is active.

Activity tracing is available so that you may monitor all requests and responses for a given remote session. This is useful both for performance optimizations and for audit logging purposes.  
Administration


DBISAM provides full local and remote administration capabilities. Databases can be backed up and restored manually or within scheduled events that automatically run at specified intervals. In fact, any administrative function can be run using a scheduled event.

DBISAM includes table creation and structure alterationtable verification and repairtable optimization, and import and export functionality. All of this functionality comes complete with progress, data conversion error, and log events to ensure that their execution can be customized and reported upon.